home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / Codex ass dev system v1.10.adf / include / devices / serial.i < prev    next >
Text File  |  1988-09-19  |  6KB  |  169 lines

  1. ********************************************************************
  2. *               Commodore-Amiga, Inc.                              *
  3. *               serial.i                                           *
  4. ********************************************************************
  5. ********************************************************************
  6. *
  7. * external declarations for Serial Port Driver
  8. *
  9. * SOURCE CONTROL
  10. * ------ -------
  11. * $Header: serial.i,v 25.0 85/03/27 19:14:15 tomp Exp $
  12. *
  13. * $Locker:  $
  14. *
  15. ********************************************************************
  16.  
  17.     IFND    DEVICES_SERIAL_I
  18. DEVICES_SERIAL_I SET 1
  19.  
  20.     IFND     EXEC_STRINGS_I
  21.     include 'exec/strings.i'
  22.     ENDC    !EXEC_STRINGS_I
  23.  
  24.     IFND     EXEC_IO_I
  25.     include 'exec/io.i'
  26.     ENDC    !EXEC_IO_I
  27.  
  28. *--------------------------------------------------------------------
  29. *
  30. * Useful constants
  31. *
  32. *--------------------------------------------------------------------
  33. *
  34. SER_CTL       EQU     $11130000 ; default char's for xON,Xoff,reserved,rsvd.
  35. SER_DBAUD     EQU     9600      ; default baud 
  36.  
  37. *
  38. *--------------------------------------------------------------------
  39. *
  40. * Driver Specific Commands
  41.  
  42. SDCMD_QUERY     EQU     CMD_NONSTD
  43. SDCMD_BREAK     EQU     CMD_NONSTD+1
  44. SDCMD_SETPARAMS EQU     CMD_NONSTD+2
  45.  
  46. SER_DEVFINISH   EQU     CMD_NONSTD+2 ; number of device comands 
  47.  
  48. *--------------------------------------------------------------------
  49.  
  50. *-- SERIALNAME is a generic macro to get the name of the driver.  This
  51. *-- way if the name is ever changed you will pick up the change
  52. *-- automatically.
  53. *--
  54. *-- Normal usage would be:
  55. *--
  56. *-- internalName: SERIALNAME
  57. *--
  58.  
  59. SERIALNAME: MACRO
  60.       STRING   'serial.device'
  61.       ENDM
  62.  
  63.         BITDEF  SER,XDISABLED,7  ; SERFLAGS xOn-xOff feature disabled bit
  64.         BITDEF SER,EOFMODE,6     ;    "     EOF mode enabled bit
  65.         BITDEF SER,SHARED,5      ;    "     non-exclusive access
  66.         BITDEF  SER,RAD_BOOGIE,4 ;    "     high-speed mode active
  67.         BITDEF SER,QUEUEDBRK,3   ;    "     queue this Break ioRqst
  68.         BITDEF  SER,7WIRE,2      ;    "     RS232 7-wire protocol 
  69.         BITDEF SER,PARTY_ODD,1   ;    "     parity feature enabled bit
  70.         BITDEF SER,PARTY_ON,0    ;    "     parity-enabled bit 
  71.         BITDEF IOSER,QUEUED,6    ; IO_FLAGS rqst-queued bit
  72.         BITDEF IOSER,ABORT,5     ;     "    rqst-aborted bit
  73.         BITDEF IOSER,ACTIVE,4    ;     "    rqst-qued-or-current bit
  74.         BITDEF IOST,XOFFREAD,4   ; IOST_HOB receive currently xOFF'ed
  75.         BITDEF IOST,XOFFWRITE,3  ;     "    transmit currently xOFF'ed
  76.         BITDEF IOST,READBREAK,2  ;     "    break was latest input
  77.         BITDEF IOST,WROTEBREAK,1 ;     "    break was latest output
  78.         BITDEF IOST,OVERRUN,0    ;     "    status word RBF overrun
  79. *
  80. **************************************************************************************
  81.  STRUCTURE TERMARRAY,0
  82.         ULONG    TERMARRAY_0
  83.         ULONG    TERMARRAY_1
  84.         LABEL    TERMARRAY_SIZE
  85.  
  86. *****************************************************************
  87. * CAUTION !!  IF YOU ACCESS the serial.device, you MUST (!!!!) use an
  88. * IOEXTSER-sized structure or you may overlay innocent memory, okay ?!  
  89. *****************************************************************
  90.  
  91.  STRUCTURE IOEXTSER,IOSTD_SIZE
  92.  
  93. *     STRUCT   MsgNode
  94. *   0   APTR     Succ
  95. *   4   APTR     Pred
  96. *   8   UBYTE    Type
  97. *   9   UBYTE    Pri
  98. *   A   APTR     Name
  99. *   E   APTR     ReplyPort
  100. *  12   UWORD    MNLength
  101. *     STRUCT   IOExt
  102. *  14   APTR     IO_DEVICE
  103. *  18   APTR     IO_UNIT
  104. *  1C   UWORD    IO_COMMAND
  105. *  1E   UBYTE    IO_FLAGS
  106. *  1F   UBYTE    IO_ERROR
  107. *     STRUCT   IOStdExt
  108. *  20   ULONG    IO_ACTUAL
  109. *  24   ULONG    IO_LENGTH
  110. *  28   APTR     IO_DATA
  111. *  2C   ULONG    IO_OFFSET
  112. *
  113. *  30
  114.    ULONG   IO_CTLCHAR      ; control char's (order = xON,xOFF,rsvd,rsvd)
  115.    ULONG   IO_RBUFLEN      ; length in bytes of serial port's read buffer
  116.    ULONG   IO_EXTFLAGS     ; (not used) flag extension area
  117.    ULONG   IO_BAUD         ; baud rate requested (true baud)
  118.    ULONG   IO_BRKTIME      ; duration of break signal in MICROseconds
  119.    STRUCT  IO_TERMARRAY,TERMARRAY_SIZE ; termination character array
  120.    UBYTE   IO_READLEN      ; bits per read char (bit count)
  121.    UBYTE   IO_WRITELEN     ; bits per write char (bit count)
  122.    UBYTE   IO_STOPBITS     ; stopbits for read (count)
  123.    UBYTE   IO_SERFLAGS     ; see SERFLAGS bit definitions above 
  124.    UWORD   IO_STATUS       ; status of serial port, as follows:
  125. *
  126. *                  BIT  ACTIVE  FUNCTION
  127. *                   0    low    busy
  128. *                   1    low    paper out
  129. *                   2    low    select
  130. *                   3    low    Data Set Ready
  131. *                   4    low    Clear To Send
  132. *                   5    low    Carrier Detect
  133. *                   6    low    Ready To Send
  134. *                   7    low    Data Terminal Ready
  135. *                   8    high   read overrun
  136. *                   9    high   break sent
  137. *                  10    high   break received
  138. *                  11    high   transmit x-OFFed       
  139. *                  12    high   receive x-OFFed       
  140. *               13-15    (not)  reserved
  141. *
  142.         LABEL   IOEXTSER_SIZE
  143.  
  144. *********************************************************************************
  145.  
  146. *--------------------------------------------------------------------
  147. *
  148. * Driver error definitions
  149. *
  150. *--------------------------------------------------------------------
  151.  
  152. SerErr_DevBusy          EQU     1
  153. SerErr_BaudMismatch     EQU     2
  154. SerErr_InvBaud          EQU     3
  155. SerErr_BufErr           EQU     4
  156. SerErr_InvParam         EQU     5
  157. SerErr_LineErr          EQU     6
  158. SerErr_NotOpen          EQU     7    
  159. SerErr_PortReset        EQU     8   
  160. SerErr_ParityErr        EQU     9
  161. SerErr_InitErr          EQU    10
  162. SerErr_TimerErr         EQU    11
  163. SerErr_BufOverflow      EQU    12
  164. SerErr_NoDSR            EQU    13
  165. SerErr_NoCTS            EQU    14
  166. SerErr_DetectedBreak    EQU    15
  167.  
  168.     ENDC    !DEVICES_SERIAL_I 
  169.